1. Field of the Invention
The present invention generally relates to data processing, and more particularly, to the accessing data through a logical framework.
2. Description of the Related Art
Databases are computerized information storage and retrieval systems. The most prevalent type of database is the relational database, a tabular database in which data is defined so that it can be reorganized and accessed in a number of different ways. A relational database management system (DBMS) is a database management system that uses relational techniques for storing and retrieving data.
Regardless of the particular architecture, in a DBMS, a requesting entity (e.g., an application, the operating system or a user) demands access to a specified database by issuing a database access request. Such requests may include, for instance, simple catalog lookup requests or transactions and combinations of transactions that operate to read, change and add specified records in the database. These requests are made using high-level query languages such as the Structured Query Language (SQL). Illustratively, SQL is used to make interactive queries for getting information from and updating a database such as International Business Machines' (IBM) DB2, Microsoft's SQL Server, and database products from Oracle, Sybase, and Computer Associates. The term “query” denominates a set of commands for retrieving data from a stored database. Queries take the form of a command language that lets programmers and programs select, insert, update, find out the location of data, and so forth.
In many cases, particularly in research-oriented environments, the task of analyzing information is typically a multi-step, iterative process involving generation of an initial set of query results, analysis of initial set of query results, and comparison of the initial set of query results with other available information to yield another set of data results. For example, in a medical research environment, a first query could be posed to find a set of research candidates meeting a particular diagnosis or test result profile. In a large data warehouse environment, it may take a lot of time and resources to process a query of this nature, in particular if the criteria specified is complex. Once the query results are returned, it may be desirable to run a second query correlating the results of the first query with other information in the full data repository to find, e.g., all individuals living at the same address or within the same town as those individuals found to meet the particular diagnosis or test result profile specified in the first query. Accordingly, information returned by the first query is correlated with other information in the data repository to yield additional information and knowledge discovery.
Unfortunately, current methods to address this scenario are typically rather manual and error prone. Specifically, the user is required to go through several steps to save the results from the original query in a form that would allow for subsequent queries to be performed against it. In a relational environment, this would require a table to be created to hold the results of the original query. Similarly, in an XML-based repository, query result data would need to be stored in the repository in order to be re-queried. In either case, the user would then need to understand the physical schema used to represent the initial query results and express a subsequent query taking this schema into account. Also, in order to correlate initial query results with other information in the data repository, the user must be aware of key relationships between the query result set and other entities in the data repository and must include this key relationships in the original query and corresponding result set to enable correlation with the rest of the data repository.
Therefore, what is needed is a query framework providing flexibility in data analysis.